// 导入axios
import axios from 'axios';
// instance还是axios 只不过是封装以后的 
// 输出环境变量
// process.env是node中的全局变量,类似于is中的windeow
console.log(process.env.NODE_ENV);    //development  或者 production
console.log(process.env.VUE_APP_BASE_URL);  //开发对应的值是/api 或者生产环境对象的值是"http://kumanxuan1.f3322.net:8001/"
const instance = axios.create({
    // 配置公共的请求地址
    baseURL:"/api",   //这里添加/api 是因为我们设置的跨域,需要有/api的字段才会生效
    // 配置请求的响应时长,(当请求超过该时间,则自动中断请求)
    timeout: 5000,
    // 这是配置请求头(指针对post),如果是get,可以不设置请求头
    headers: {'Content-Type'  : 'application/json'}
  });


  // 添加请求拦截器
  instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 一般用于修改请求头,给请求头设置参数,一般该参数为token, 然后后端就可以从请求头的header中获取该参数
  //  设置请求头
  // 获取localStorage中的token的值
  const token = localStorage.getItem('token')
  // 进行判断如果token存在就添加请求头
  if(token){
// 给 config.headers['请求头']= 请求头值(token)  设置请求头
     config.headers['X-Nideshop-Token']=token;
  }
  
   
    return config;

  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 可以做一些操作 比如状态码,判断操作或者是更新一些本地存储内容
    return response;
  }, function (error) {
    // 对响应错误做点什么
    // 拦截响应
    return Promise.reject(error);
  });
//导出 instance 封装后的(axios)可以和其一样使用
  export default instance
// 使用自定义配置新建一个axios 实例，对axios 做一些基础配置
// const instance = axios.create({
    // 配置公共的请求地址
//     baseURL: 'http://kumanxuan1.f3322.net:8001/',
//     timeout: 5000,
//     headers: { 'X-Custom-Header': 'foobar' }
// });

// // 添加请求拦截器
// instance.interceptors.request.use(function (config) {
//     //请求之前执行该函数， 一般在该处设置token 
//     let token = localStorage.getItem("token");
//     if (token) {
//         config.headers["token"] = token
//     }
//     // 在发送请求之前做些什么
//     return config;
// }, function (error) {
//     // 对请求错误做些什么
//     return Promise.reject(error);
// });

// //响应拦截器
// instance.interceptors.response.use(response => {
//     //1.非200响应
//     //2.token过期
//     //3.异地登陆
//     //4.非对象加密的解密
//     return response.data
// })
// export default instance
